package com.qdlc.p2p.dal.dto;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import com.qdlc.p2p.common.constant.Global;

/**
 * user_identify 实体类 用户认证状态
 *
 * @author liya
 * @version 1.1.0.0
 */
@SuppressWarnings("serial")
@Entity
@Table(name = Global.DB_PREFIX + "user_identify")
public class UserIdentify implements Serializable{

    /** 主键 */
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    /** 用户 */
    @Column(name = "user_id")
    private long userId;

    /** 实名认证 0:未认证 1：实名认证通过 2：实名认证待审核 -1：实名认证未通过 */
    private int realNameStatus;

    /** 邮箱认证 0:未激活 1：已激活 */
    private int emailStatus;

    /** 手机认证 -1:未通过,0:未认证,1:通过,2:待审核 */
    private int mobilePhoneStatus;

    /** 实名认证审核时间 */
    private Date realNameVerifyTime;

    /** 手机认证审核时间 */
    private Date mobilePhoneVerifyTime;

    /** 状态 0:未申请,2:待审核，1:审核成功 ，已经是vip -1：审核不成功 */
    private int vipStatus;

    private String realNameVerifyRemark;

    /** VIP审核时间 */
    private Date vipVerifyTime;
    /** VIP截止时间 */
    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "vip_end_time")
    private Date vipEndTime;

    /** 第三方是否授权 */
    private boolean authorize;

    /** 第三方授权类型 */
    private String authorizeType;

    /** 第三方绑定认证信息-认证类型 */
    private String tppVerifyType;

    /** 第三方绑定认证信息-手机认证 -1:未通过,0:未认证,1:通过,2:待审核 */
    private int tppMobilePhoneStatus;

    public UserIdentify() {
    }

    public UserIdentify(long userId) {
        this.userId = userId;
    }

    public UserIdentify(long userId, int emailStatus) {
        super();
        this.userId = userId;
        this.emailStatus = emailStatus;
    }

    public long getId() {
        return id;
    }

    public long getUserId() {
		return userId;
	}

	public void setUserId(long userId) {
		this.userId = userId;
	}

	public void setId(long id) {
        this.id = id;
    }

    public int getRealNameStatus() {
        return realNameStatus;
    }

    public void setRealNameStatus(int realNameStatus) {
        this.realNameStatus = realNameStatus;
    }

    public int getEmailStatus() {
        return emailStatus;
    }

    public void setEmailStatus(int emailStatus) {
        this.emailStatus = emailStatus;
    }

    public int getMobilePhoneStatus() {
        return mobilePhoneStatus;
    }

    public void setMobilePhoneStatus(int mobilePhoneStatus) {
        this.mobilePhoneStatus = mobilePhoneStatus;
    }

    public Date getRealNameVerifyTime() {
        return realNameVerifyTime;
    }

    public void setRealNameVerifyTime(Date realNameVerifyTime) {
        this.realNameVerifyTime = realNameVerifyTime;
    }

    public Date getMobilePhoneVerifyTime() {
        return mobilePhoneVerifyTime;
    }

    public void setMobilePhoneVerifyTime(Date mobilePhoneVerifyTime) {
        this.mobilePhoneVerifyTime = mobilePhoneVerifyTime;
    }

    public int getVipStatus() {
        return vipStatus;
    }

    public void setVipStatus(int vipStatus) {
        this.vipStatus = vipStatus;
    }

    public Date getVipVerifyTime() {
        return vipVerifyTime;
    }

    public void setVipVerifyTime(Date vipVerifyTime) {
        this.vipVerifyTime = vipVerifyTime;
    }

    public Date getVipEndTime() {
        return vipEndTime;
    }

    public void setVipEndTime(Date vipEndTime) {
        this.vipEndTime = vipEndTime;
    }

    public String getRealNameVerifyRemark() {
        return realNameVerifyRemark;
    }

    public void setRealNameVerifyRemark(String realNameVerifyRemark) {
        this.realNameVerifyRemark = realNameVerifyRemark;
    }

    public boolean isAuthorize() {
        return authorize;
    }

    public void setAuthorize(boolean authorize) {
        this.authorize = authorize;
    }

    public String getAuthorizeType() {
        return authorizeType;
    }

    public void setAuthorizeType(String authorizeType) {
        this.authorizeType = authorizeType;
    }

    /**
     * @return tppMobilePhoneStatus
     */
    public int getTppMobilePhoneStatus() {
        return tppMobilePhoneStatus;
    }

    /**
     * @param tppMobilePhoneStatus 要设置的 tppMobilePhoneStatus
     */
    public void setTppMobilePhoneStatus(int tppMobilePhoneStatus) {
        this.tppMobilePhoneStatus = tppMobilePhoneStatus;
    }

    /**
     * @return tppVerifyType
     */
    public String getTppVerifyType() {
        return tppVerifyType;
    }

    /**
     * 要设置的 tppVerifyType
     *
     * @param tppVerifyType
     */
    public void setTppVerifyType(String tppVerifyType) {
        this.tppVerifyType = tppVerifyType;
    }
}
